﻿using System;
namespace Producers.Rr.Xtee.Riik.Ee.Producer.Rr {
    
    
    public partial class RR91Response : global::Producers.Rr.Xtee.Riik.Ee.Producer.Rr.IRR91Response {
        
        private string @__aVVeatekst;
        
        private int @__veakood;
        
        private string @__veatekst;
        
        private System.Collections.Generic.List<RR91Response.IIsikudType> @__isikud = new System.Collections.Generic.List<RR91Response.IIsikudType>();
        
        private System.Collections.Generic.List<RR91Response.ISuheType> @__suhe = new System.Collections.Generic.List<RR91Response.ISuheType>();
        
        public RR91Response() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public RR91Response(string @aVVeatekst, int @veakood, string @veatekst, System.Collections.Generic.List<RR91Response.IIsikudType> @isikud, System.Collections.Generic.List<RR91Response.ISuheType> @suhe) {
            this.@__aVVeatekst = @aVVeatekst;
            this.@__veakood = @veakood;
            this.@__veatekst = @veatekst;
            this.@__isikud = @isikud;
            this.@__suhe = @suhe;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected RR91Response(IRR91Response @rR91Response) {
            this.@__aVVeatekst = @rR91Response.AVVeatekst;
            this.@__veakood = @rR91Response.Veakood;
            this.@__veatekst = @rR91Response.Veatekst;
            this.@__isikud = @rR91Response.Isikud;
            this.@__suhe = @rR91Response.Suhe;
        }
        
        public virtual string AVVeatekst {
            get {
                return this.@__aVVeatekst;
            }
            set {
                this.@__aVVeatekst = value;
            }
        }
        
        public virtual int Veakood {
            get {
                return this.@__veakood;
            }
            set {
                this.@__veakood = value;
            }
        }
        
        public virtual string Veatekst {
            get {
                return this.@__veatekst;
            }
            set {
                this.@__veatekst = value;
            }
        }
        
        public virtual System.Collections.Generic.List<RR91Response.IIsikudType> Isikud {
            get {
                return this.@__isikud;
            }
            set {
                this.@__isikud = value;
            }
        }
        
        public virtual System.Collections.Generic.List<RR91Response.ISuheType> Suhe {
            get {
                return this.@__suhe;
            }
            set {
                this.@__suhe = value;
            }
        }
        
        public partial class IsikudType : IIsikudType {
            
            private string @__isikudIsikukood;
            
            private string @__isikudEesnimi;
            
            private string @__isikudPerekonnanimi;
            
            private string @__isikudSynniaeg;
            
            private string @__isikudSugu;
            
            public IsikudType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public IsikudType(string @isikudIsikukood, string @isikudEesnimi, string @isikudPerekonnanimi, string @isikudSynniaeg, string @isikudSugu) {
                this.@__isikudIsikukood = @isikudIsikukood;
                this.@__isikudEesnimi = @isikudEesnimi;
                this.@__isikudPerekonnanimi = @isikudPerekonnanimi;
                this.@__isikudSynniaeg = @isikudSynniaeg;
                this.@__isikudSugu = @isikudSugu;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected IsikudType(IIsikudType @isikudType) {
                this.@__isikudIsikukood = @isikudType.IsikudIsikukood;
                this.@__isikudEesnimi = @isikudType.IsikudEesnimi;
                this.@__isikudPerekonnanimi = @isikudType.IsikudPerekonnanimi;
                this.@__isikudSynniaeg = @isikudType.IsikudSynniaeg;
                this.@__isikudSugu = @isikudType.IsikudSugu;
            }
            
            public virtual string IsikudIsikukood {
                get {
                    return this.@__isikudIsikukood;
                }
                set {
                    this.@__isikudIsikukood = value;
                }
            }
            
            public virtual string IsikudEesnimi {
                get {
                    return this.@__isikudEesnimi;
                }
                set {
                    this.@__isikudEesnimi = value;
                }
            }
            
            public virtual string IsikudPerekonnanimi {
                get {
                    return this.@__isikudPerekonnanimi;
                }
                set {
                    this.@__isikudPerekonnanimi = value;
                }
            }
            
            public virtual string IsikudSynniaeg {
                get {
                    return this.@__isikudSynniaeg;
                }
                set {
                    this.@__isikudSynniaeg = value;
                }
            }
            
            public virtual string IsikudSugu {
                get {
                    return this.@__isikudSugu;
                }
                set {
                    this.@__isikudSugu = value;
                }
            }
        }
        
        public interface IIsikudType {
            
            string IsikudIsikukood {
                get;
                set;
            }
            
            string IsikudEesnimi {
                get;
                set;
            }
            
            string IsikudPerekonnanimi {
                get;
                set;
            }
            
            string IsikudSynniaeg {
                get;
                set;
            }
            
            string IsikudSugu {
                get;
                set;
            }
        }
        
        public partial class SuheType : ISuheType {
            
            private string @__suheIsikukoodKes;
            
            private string @__suheIsikukoodKelle;
            
            private string @__suheSuhtetyyp;
            
            public SuheType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public SuheType(string @suheIsikukoodKes, string @suheIsikukoodKelle, string @suheSuhtetyyp) {
                this.@__suheIsikukoodKes = @suheIsikukoodKes;
                this.@__suheIsikukoodKelle = @suheIsikukoodKelle;
                this.@__suheSuhtetyyp = @suheSuhtetyyp;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected SuheType(ISuheType @suheType) {
                this.@__suheIsikukoodKes = @suheType.SuheIsikukoodKes;
                this.@__suheIsikukoodKelle = @suheType.SuheIsikukoodKelle;
                this.@__suheSuhtetyyp = @suheType.SuheSuhtetyyp;
            }
            
            public virtual string SuheIsikukoodKes {
                get {
                    return this.@__suheIsikukoodKes;
                }
                set {
                    this.@__suheIsikukoodKes = value;
                }
            }
            
            public virtual string SuheIsikukoodKelle {
                get {
                    return this.@__suheIsikukoodKelle;
                }
                set {
                    this.@__suheIsikukoodKelle = value;
                }
            }
            
            public virtual string SuheSuhtetyyp {
                get {
                    return this.@__suheSuhtetyyp;
                }
                set {
                    this.@__suheSuhtetyyp = value;
                }
            }
        }
        
        public interface ISuheType {
            
            string SuheIsikukoodKes {
                get;
                set;
            }
            
            string SuheIsikukoodKelle {
                get;
                set;
            }
            
            string SuheSuhtetyyp {
                get;
                set;
            }
        }
    }
}
